.\"   $Id: addbddcircuitabl.3,v 1.1 2002/03/18 11:26:50 ludo Exp $
.\" @(#)addbddcircuitabl.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic
.TH ADDBDDCIRCUITABL 3 "October 1, 1997" "ASIM/LIP6" "BDD FUNCTIONS"
.SH NAME
addbddcircuitabl \- converts an \fBabl\fP expression to a \fBbdd\fP node.
.so man1/alc_origin.1
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
bddnode \(**addbddcircuitabl( BddCircuit, Expr )
  bddcircuit \(**BddCircuit;
  chain_list \(**Expr;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fIBddCircuit\fP
The \fBbdd\fP circuit.
.TP
\fIExpr\fP
The expression to convert.
.SH DESCRIPTION
\fBaddbddcircuitabl\fP converts the \fBabl\fP expression \fIExpr\fP
to a \fBbdd\fP node. The \fIBddCircuit\fP is used to translate
the atomic expressions into variable nodes.
If a null pointer is given, the default \fBbdd\fP circuit is used.
If an atomic expression doesn't appear in the \fIBddCircuit\fP 
input names hash table or output names hash table,
then \fIaddbddcircuitabl\fP adds a new input by calling the function 
\fIaddbddcircuitin\fP with the BDD_IN_MODE_LAST mode.
.br
.SH RETURN VALUE
\fBaddbddcircuitabl\fP returns a pointer to the \fBbdd\fP node translated.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"bad operator xxx error !"
.ft R
.RS
The \fIExpr\fP parameter must be a well defined \fBabl\fP expression.
.RE
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "bdd101.h"
   bddsystem  \(**BddSystem;
   bddcircuit \(**BddCircuit;
   bddnode    \(**BddNode;
   chain_list \(**Expr;
   BddSystem  = createbddsystem( 100, 1000, 100, 50000 );
   BddCircuit = createbddcircuit( "hello_world", 10, 10, BddSystem );
   Expr = createablbinexpr( ABL_AND, 
                            createablatom( "i0" ),
                            createablatom( "i1" ) );
   BddNode = addbddcircuitabl( BddCircuit, Expr );
   freeablexpr( Expr );
   Expr = convertbddcircuitabl( BddCircuit, BddNode );
   /* displays (i0 and i1) */
   viewablexpr( Expr, ABL_VIEW_VHDL );
   freeablexpr( Expr );
   destroybddsystem( (bddsystem \(**)0 );
   destroybddcircuit( (bddcircuit \(**)0 );
.ft R
.fi
.SH SEE ALSO
.BR bdd (1),
.BR abl (1),
.BR convertbddcircuitabl(3).


.so man1/alc_bug_report.1

